今天我們來學習基本的加解密練習,我打算使用互斥邏輯(XOR)來試試看
XOR的真值表:
| A | B | A XNOR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
我們假設原始明文為「IRON」,對應到電腦的ASCII編碼,加密的過程就會變成如下表格
| 名稱 | 內容 | 二進制編碼 |
|---|---|---|
| 明文 | IRON | 01001001 01010010 01001111 01001110 |
| 金鑰 | 321 | 00100001 00100000 00011111 00100001 |
| 密文 | hrPo | 01101000 01110010 01010000 01101111 |
| 我們可以得到密文「hrPo」 | ||
| 解密的方法亦然 | ||
| 名稱 | 內容 | 二進制編碼 |
| --- | --- | --- |
| 密文 | hrPo | 01101000 01110010 01010000 01101111 |
| 金鑰 | 321 | 00100001 00100000 00011111 00100001 |
| 明文 | IRON | 01001001 01010010 01001111 01001110 |
| 由此可見,使用正確的演算法可以完整地進行加密和解密的動作 | ||
| 心得:原本在練習的時候打算使用XNOR來實作,但發現二進制編碼的第1位數開頭是1的話常常是特殊字符,所以改成用XOR來做。 |